package com.palominocia.capa_datos_nodoCentral.dbPostgreSQL.schema1.modelo.opciones;

import java.util.Date;

import javax.persistence.EntityManager;
import javax.persistence.ManyToOne;
import javax.persistence.PersistenceContext;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;

import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.roo.addon.javabean.RooJavaBean;
import org.springframework.roo.addon.jpa.activerecord.RooJpaActiveRecord;
import org.springframework.roo.addon.tostring.RooToString;

import com.palominocia.capa_datos_nodoCentral.dbPostgreSQL.schema1.modelo.seguridad.Perfil;
import com.palominocia.capa_datos_nodoCentral.dbPostgreSQL.schema1.modelo.seguridad.Usuario;

@RooJavaBean
@RooToString
@RooJpaActiveRecord
public class OpcionesPerfil {
	@PersistenceContext(unitName = "persistenceUnit")
	transient EntityManager entityManager;
	/**
     */
	@ManyToOne
	private Perfil codPerfil;

	/**
     */
	@ManyToOne
	private Opciones codOpcion;

	/**
     */
	@Temporal(TemporalType.TIMESTAMP)
	@DateTimeFormat(style = "M-")
	private Date fechaCreacion;

	/**
     */
	@ManyToOne
	private Usuario usuarioCreacion;

	@Transient
	public static OpcionesPerfil findOpcionPerfil(Opciones opciones,
			Usuario user) {
		OpcionesPerfil opci = null;
		try {
			opci = entityManager()
					.createQuery(
							"SELECT o FROM OpcionesPerfil o WHERE o.codOpcion =:codOpcion AND o.usuarioCreacion=:usuarioCreacion",
							OpcionesPerfil.class)
					.setParameter("codOpcion", opciones)
					.setParameter("usuarioCreacion", user).getSingleResult();
		} catch (Exception e) {
			e.printStackTrace();
			opci = null;
		}
		return opci;
	}
}
